
#include "superficiebarrido.h"

SuperficieBarrido::SuperficieBarrido(const Curva &perfil, const Curva &barrido) :
   perfil(perfil), barrido(barrido) {}

/*
 * Precondicion:
 *    0 <= u <= 1
 *    0 <= v <= 1
 *
 * */
Coord SuperficieBarrido::operator()(float u, float v) const {
   return perfil(u) + barrido(v);
}

Coord SuperficieBarrido::normal(float u, float v) const {
   Coord du = perfil.tangente(u);
   Coord dv = barrido.tangente(v);

   return du.cross(dv).normalizar();
}

